package com.zhangqi.youku;

import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.RelativeLayout;

public class Tools {

    //重载方法,目的是为了后来加入的延迟参数，要改的代码多，所以采用这样的方法，很巧妙
    public static void hideView(ViewGroup view){
        hideView(view,0);//设置不延迟
    }
    //重载方法,目的是为了后来加入的延迟参数，要改的代码多，所以采用这样的方法，很巧妙
    public static void showView(ViewGroup view){
        showView(view, 0);//设置不延迟
    }

    //隐藏动画
    public static void hideView(ViewGroup view,long delay){
        //设置基本动画参数
        RotateAnimation anim = new RotateAnimation(0,180, Animation.RELATIVE_TO_SELF,
                0.5f,Animation.RELATIVE_TO_SELF,1f);
        anim.setDuration(500);//设置时间
        anim.setFillAfter(true);//保持动画后的状态
        anim.setStartOffset(delay);//设置延迟，产生偏移效果


        view.startAnimation(anim);

        //禁用所有孩子的点击事件，因为发现当第2层动画隐藏后，点击隐藏空白处，依然能触发第2层点击事件
        int childCount = view.getChildCount();
        for(int i=0;i<childCount;i++){
            //使用getChildAt()获取每个孩子，调用setEnabled()方法设置可用不可用,这里禁用
            view.getChildAt(i).setEnabled(false);
        }
    }


    //显示动画结果
    public static void showView(ViewGroup view,long delay) {
        //设置基本动画参数
        RotateAnimation anim = new RotateAnimation(180,360, Animation.RELATIVE_TO_SELF,
                0.5f,Animation.RELATIVE_TO_SELF,1f);
        anim.setDuration(500);//设置时间
        anim.setFillAfter(true);//保持动画后的状态
        anim.setStartOffset(delay);//延迟多长时间后才能运行动画

        view.startAnimation(anim);

        //开启所有孩子的点击事件
        int childCount = view.getChildCount();
        for(int i=0;i<childCount;i++){
            //使用getChildAt()获取每个孩子，调用setEnabled()方法设置可用不可用,这里开启
            view.getChildAt(i).setEnabled(true);
        }
    }
}
